Procedure for searching for position determination signals using a plurality of search modes

ABSTRACT

A method of and system for searching for position determination signals using a plurality of progressively more sensitive search modes comprising a first level mode, a second mode, and at least one higher level mode. If any of the search window parameters exceed prescribed limits, a first level search is performed, and the search window parameters are refined responsive to the ensuing search results so they are within the prescribed limits. Then, the second level search is performed, and measurements derived from the ensuing search results. If the measurements satisfy selected measurement sufficiency criteria, additional searching within the position fix attempt is avoided. If the measurements do not satisfy the selected measurement sufficiency criteria, a higher level, more sensitive search is performed.

FIELD OF THE INVENTION

[0001] This invention relates to the fields of position determination and GPS geo-location systems, and, more specifically, to procedures for searching for position determination signals using search modes with varying sensitivity and time to fix.

[0002] Related Art

[0003] The GPS geo-location system is a system of earth orbiting satellites from which entities visible to the satellites are able to determine their position. Each of the satellites transmits a signal marked with a repeating pseudo-random noise (PN) code of 1,023 chips uniquely identifying the satellite. The 1,023 chips repeat every millisecond. The signal is also modulated with data bits, where each data bit has a 20 ms duration in the modulated signal.

[0004]FIG. 1 illustrates an application of the GPS geo-location system, whereby a subscriber station 100 in a wireless communications system receives transmissions from satellites 102 a, 102 b, 102 c, 102 d visible to the station, and derives time measurements from four or more of the transmissions. The station provides the measurements to position determination entity (PDE) 104, which determines the position of the station from the measurements. Alternatively, the subscriber station 100 may determine its own position from this information.

[0005] The subscriber station 100 searches for a transmission from a particular satellite by correlating the PN code for the satellite with a received signal. The received signal is typically is a composite of transmissions from one or more satellites visible to the station's receiver in the presence of noise. The correlation is performed over a range of code phase hypotheses known as the code phase search window W_(CP), and over a range of Doppler frequency hypotheses known as the Doppler search window W_(DOPP). The code phase hypotheses are typically represented as a range of PN code shifts, and the Doppler frequency hypotheses are typically represented as Doppler frequency bins.

[0006] Each correlation is performed over an integration time I which may be expressed as the product of N_(c) and M, where N_(c) is the coherent integration time, and M is number of coherent integrations which are non-coherently combined.

[0007] For a particular PN code, the correlation values are associated with the corresponding PN code shifts and Doppler bins to define a two-dimensional correlation function. Any peaks of the correlation function are located, and compared to a predetermined noise threshold. The threshold is selected so that the false alarm probability, the probability of falsely detecting a satellite transmission, is at or below a predetermined value. A time measurement for the satellite is derived from the location of the earliest non-sidelobe peak along the code phase dimension which equals or exceeds the threshold. A Doppler measurement for the subscriber station may be derived from the location of the earliest non-sidelobe peak along the Doppler frequency dimension which equals or exceeds the threshold.

[0008] Current subscriber station architectures place significant constraints on the process of searching for position determination signals. In a shared RF architecture, for example, core RF circuitry in the subscriber station is shared between the GPS position determination receive path and the voice/data communication transmit and receive paths. Accordingly, the time during which the subscriber station performs the GPS position determination function interferes with the ability of the subscriber station to perform the voice/data communication function. To reduce this interference to acceptable levels, the GPS frequency tune time, i.e., the time during which the subscriber station is tuned to the GPS frequency to perform the GPS position determination function, is typically limited to a prescribed period, e.g., 1 or 2 seconds.

[0009] Due to constraints such as this, and the wide dynamic range typically exhibited by GPS position determination signals, it is difficult to perform the search for position determination signals in the allotted time and still achieve an accurate position fix. If the search is performed within the prescribed time period, the resulting position fix is often inaccurate. If the search fix is performed accurately, the allotted time if often exceeded.

SUMMARY OF THE INVENTION

[0010] A method is described of searching for position determination signals using a plurality of progressively more sensitive search modes. In a first embodiment, the plurality of search modes comprises, in order of increasing sensitivity, a first level mode, a second level mode, and at least one higher level mode. In this embodiment, the method begins by determining whether any of the search window parameters exceed prescribed limits. If so, a first level search is performed, and the search window parameters are refined based on the resulting search results so that they are within the prescribed limits. If none of the search window parameters exceed the prescribed limits, the first level search is avoided.

[0011] A second level search is then performed as part of a position fix attempt. Measurements are derived from the ensuing search results. If the measurements satisfy one or more selected measurement sufficiency criteria, additional searching within the position fix attempt is avoided.

[0012] If the measurements do not satisfy the one or more selected measurement sufficiency criteria, a higher level search beyond the second level is conducted. In one embodiment, a selection is made between a third level and a fourth level search based on prescribed selection criteria. In one implementation, if the criteria are satisfied, the third level search is conducted, and if the criteria are not satisfied, the fourth level search is conducted.

[0013] In a second embodiment, the plurality of search modes comprises, in order of increasing sensitivity, a first level mode, a second level mode, and a third level mode. In this embodiment, the method begins by performing a first level search as part of a position fix attempt.

[0014] Then, one or more measurements are derived from the ensuing search results. It is determined whether the measurements satisfy one or more selected measurement sufficiency criteria.

[0015] If the measurements satisfy the one or more selected measurement sufficiency criteria, additional searching within the position fix attempt is avoided.

[0016] If the measurements do not satisfy the one or more selected measurement sufficiency criteria, a higher level search beyond the first level is performed. In this embodiment, the higher level search is either a second level or a third level search based on one or more prescribed selection criteria.

[0017] Memories tangibly embodying the foregoing methods are also described. Similarly, systems related to the foregoing methods are described.

BRIEF DESCRIPTION OF THE DRAWINGS

[0018] The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. In the figures, like reference numerals designate corresponding parts throughout the different views.

[0019]FIG. 1 is a diagram of a GPS geo-location system.

[0020]FIG. 2 is a flowchart of an embodiment of a method according to the invention of searching for position determination signals using a plurality of progressively more sensitive search modes.

[0021]FIG. 3 illustrates an example of a polygon formed from measurements resulting from a level 1 search.

[0022]FIG. 4 is a flowchart of an implementation example of a method according to the invention of searching for position determination signals using a plurality of progressively more sensitive searches comprising, in order of increasing sensitivity, level 0, level 1, level 2, and level 3 search modes.

[0023] FIGS. 5 is a flowchart of the level 0 search in the implementation example of FIG. 4.

[0024]FIG. 6 is a flowchart of the level 1 search in the implementation example of FIG. 4.

[0025]FIG. 7 is a flowchart of the level 2 search in the implementation example of FIG. 4.

[0026]FIG. 8 is a flowchart of the level 3 search in the implementation example of FIG. 4.

[0027]FIG. 9 is a flowchart of the measurement sufficiency criteria employed in the level 1 search of FIG. 6.

[0028]FIG. 10 is a flowchart of the level 2/level 3 selection criteria employed in the implementation example of FIG. 4.

[0029]FIG. 11 is a table identifying the parameters governing the level 0, level 1, level 2, and level 3 search modes in the implementation example of FIG. 4.

[0030] FIGS. 12A-12B illustrate a segmentation procedure employed in the implementation example of FIG. 4, whereby the two-dimensional domain to be searched for a GPS satellite is divided into a plurality of segments, each characterized by a range of Doppler frequencies and a range of code phases.

[0031]FIG. 13 is a block diagram of an embodiment of a system according to the invention for searching for position determination signals using a plurality of progressively more sensitive search modes.

[0032]FIG. 14 is a block diagram of an embodiment of a subscriber station embodying or incorporating the system of FIG. 13.

DETAILED DESCRIPTION

[0033] As utilized herein, terms such as “about” and “substantially” are intended to allow some leeway in mathematical exactness to account for tolerances that are acceptable in the trade. Accordingly, any deviations upward or downward from the value modified by the terms “about” or “substantially” in the range of 1% to 20% should be considered to be explicitly within the scope of the stated value.

[0034] Moreover, as used herein, the term “software” includes source code, assembly language code, binary code, firmware, macro-instructions, micro-instructions, or the like, or any combination of two or more of the foregoing.

[0035] Furthermore, the term “memory” refers to any processor-readable medium, including but not limited to RAM, ROM, EPROM, PROM, EEPROM, disk, floppy disk, hard disk, CD-ROM, DVD, or the like, or any combination of two or more of the foregoing, on which may be stored a series of software instructions executable by a processor.

[0036] The terms “processor” or “CPU” refer to any device capable of executing a series of instructions and includes, without limitation, a general- or special-purpose microprocessor, finite state machine, controller, computer, digital signal processor (DSP), or the like.

[0037] The term “space vehicle” and the abbreviation “SV” both mean a GPS satellite.

[0038]FIG. 2 is a flowchart of an embodiment of a method according to the invention of searching for position determination signals using a plurality of progressively more sensitive search modes comprising, in order of increasing sensitivity, a level 0 mode, a level 1 mode, and at least one higher level mode. This particular embodiment, and the related implementation illustrated in FIGS. 4-10, grew out of the timing constraints imposed by a shared RF architecture on the time during which the subscriber station is allowed to tune to the GPS frequency, but it should be appreciated that the invention is not limited to this, and encompasses applications to dual RF (non-shared) architectures which do not impose such constraints.

[0039] In one example, the method is performed by an entity whose position is sought to be determined, such as a subscriber station in an IS-801 compliant wireless communications system. A PDE provides to the subscriber station acquisition assistance (AA) indicating which SVs are likely to be visible to the station. These SVs form a set N_(TOT). In a second example, AA is unavailable; and the set N_(TOT) consists of all SVs in the GPS geo-location system. In a third example, the subscriber station has access to a recent almanac as well as an approximate measure of time and coarse knowledge of its own position. From this information, the subscriber station predicts which SVs are visible to it. These SVs form the set N_(TOT) in this example.

[0040] Each of the SVs in the set N_(TOT) is associated with search window parameters defining the two-dimensional domain of code phase and Doppler frequency hypotheses to be searched for the SV. In one implementation, illustrated in FIG. 12A, the search window parameters for an SV comprise a code phase search window size, WIN_SIZE_(CP), a code phase window center, WIN_CENT_(CP), a Doppler search window size, WIN_SIZE_(DOPP), and a Doppler window center, WIN_SIZE_(DOPP). In the case where the entity whose position is sought to be determined is a subscriber station in an IS-801 compliant wireless communication system, these parameters are indicated by acquisition assistance provided to the subscriber station by the PDE.

[0041] The method begins with step 202, which comprises determining whether any of the search window parameters exceed prescribed limits. In one embodiment, step 202 comprises determining whether any of the search windows for an SV in the set N_(TOT) exceed prescribed size limits. That might occur, for example, if a new base station is added to a network without being added to the PDE base station almanac. A PDE in this situation providing AA to subscriber stations serviced by the base station sets the code phase search window size for all SVs to the maximum value of 1,023 chips. A code phase search window of this magnitude might cause a time out condition during the level 1 search. The purpose of step 202 in this example is to determine which, if any, of the SVs are associated with search windows that could cause a time out condition.

[0042] If any of the search window parameters exceed prescribed limits, step 204 is performed. Step 204 comprises performing a level 0 search. In one example, the level 0 search is performed only for those SVs in the set N_(TOT) whose code phase search window size exceeds a predetermined threshold.

[0043] Step 206 follows step 204. In step 206, the search window parameters are refined based on the ensuing search results so that they are within the prescribed limits. In one example, where only the SVs whose code phase window sizes exceed a predetermined threshold are searched, this step comprises locating the maximum peak for a given PN code, modifying the window center so it is located at the peak, and reducing the window size so a search for the SV can be accommodated through a single pass through the correlator. This step may also involve re-centering and reducing the size of the Doppler frequency search window.

[0044] From step 206, the method performs step 208, which comprises conducting a level 1 search as part of a position fix attempt. The level 1 search is a more sensitive search compared to the level 0 search. Accordingly, in one implementation, the integration time used to conduct this search exceeds that of the level 0 search.

[0045] From step 208, the method proceeds to step 210. In step 210, measurements are derived from the ensuing search results. In one example, the measurements comprise a signal to noise ratio (SNR) and code phase (time) for each of the discernable peaks. In one implementation example, the SNR which is derived is the peak carrier signal to noise ratio (C/N₀).

[0046] From step 210, the method proceeds to inquiry step 212. In step 212, it is determined whether the measurements resulting from the level 1 search satisfy one or more selected measurement sufficiency criteria. If the measurements satisfy the one or more selected measurement sufficiency criteria, additional searching within the position fix attempt is avoided.

[0047] If the measurements do not satisfy the one or more selected measurement sufficiency criteria, step 214 is performed. In step 214, a higher level search for position determination signals is performed. The higher level search is a more sensitive search than the level 1 search. Accordingly, the integration time employed in this search is longer than that employed in the level 1 search.

[0048] In one implementation, inquiry step 212 begins by comparing the SNR measurements from the level 1 search to a first noise threshold T₁. The noise threshold T₁ is determined so that the false alarm probability is below a predetermined level. The SVs which exceed the noise threshold T₁ form a set N.

[0049] The SNR measurements from the level 1 search are also compared to a second, stronger threshold T₂ The SVs which exceed the threshold T₂ form the set S. The set S′ is defined as the SVs in the set N_(TOT) but excluding S.

[0050] In one example, the higher level search is avoided if |S|, the number of SVs in the set S, equals |N_(TOT)|, the number of SVs in the set N_(TOT), indicating that all SVs searched for satisfy the stronger threshold T₂.

[0051] In a second example, a polygon is constructed from the measurements for the SVs in the set N. For each of these SVs, a vector is formed from the satellite azimuth angle and peak carrier signal to noise ratio (C/N₀). The vectors are oriented in a coordinate system. The endpoints of the vectors are connected to define a polygon. In this implementation, the second search is avoided if the area A of the polygon equals or exceeds a threshold A_(T).

[0052]FIG. 3 illustrates an example of a polygon defined by the five vectors 300 a, 300 b, 300 c, 300 d, and 300 e. Each of these vectors represents or corresponds to a measurement. More specifically, the angle between the vector and the vertical axis is the azimuth angle for the SV, and the magnitude of the vector is the peak carrier signal to noise ratio (C/N₀). The endpoints of the vectors are identified with numerals 302 a, 302 b, 302 c, 302 d, and 302 e. The polygon which is defined by these endpoints is identified with numeral 306. The area of this polygon, which is determined using known techniques, is used in the above comparison.

[0053] In a third example, the higher level search is avoided if |N|, the number of SVs in the set N, equals or exceeds a threshold N_(EE).

[0054] In a fourth example, the peak carrier signal to noise ratio (C/N₀) for each of the SVs in the set N is summed. The higher level search is avoided if this sum equals or exceeds a predetermined threshold.

[0055] In a fifth example, a combination of any two or more of the foregoing is employed to determine if the higher level search is to be avoided.

[0056]FIG. 4 illustrates an implementation example of a method of searching for position determination signals using a plurality of progressively more sensitive search modes. In this implementation example, the entity whose position is sought to be determined is a subscriber station in an IS-801 compliant wireless communication system.

[0057] The search modes which are employed in this example comprise, in order of increasing sensitivity, a level 0 mode, a level 1 mode, a level 2 mode, and a level 3 mode. In one example, the parameters governing each of these modes is illustrated in FIG. 11. As can be seen, in this example, the total integration time utilized in mode 0 is 20 ms, consisting of one 20 ms coherent integration; the total integration time utilized in mode 1 is 80 ms, consisting of four 20 ms coherent integrations non-coherently combined; the total integration time utilized in mode 2 is 880 ms, consisting of 44 20 ms coherent integrations non-coherently combined; and the total integration time utilized in mode 3 is 1760 ms, consisting of 22 80 ms coherent integrations non-coherently combined. Since sensitivity is proportional to total integration time, the sensitivity of the modes also successively increases. In the example illustrated, the sensitivity of mode 0 is 31.0 dB-Hz; the sensitivity of mode 1 is 26.4 dB-Hz; the sensitivity of mode 2 is 19.2 dB-Hz; and the sensitivity of mode 3 is 15.45 dB-Hz.

[0058] The method begins with step 402. In this step, the subscriber station obtains acquisition assistance from a PDE for each of the SVs in the set N_(TOT). This acquisition assistance indicates for each such SV a code phase window size, a code phase window center, a Doppler frequency window size, and a Doppler frequency window center. Note that sensitivity assistance, although available, is not requested at this time because of the large overhead involved, and since sensitivity assistance is not required for coherent integration times of 20 ms or less (as utilized in the level 0, 1, and 2 search modes).

[0059] The method then proceeds to step 404. In step 404, an inquiry is made whether any of the SVs in the set N_(TOT) have code phase window sizes which exceed a predetermined threshold.

[0060] In one configuration, the predetermined threshold is set to identify those SVs whose code phases are such that the SVs cannot be searched through a single pass through the correlator. Consider, for example, a correlator having eight (8) parallel channels with a capacity of 32 chips for each channel, and several chips of overlap between the channels. An SV can be searched with a single pass through the correlator if the code phase search window is less than or equal to about 200 chips, a figure which is derived by subtracting overhead due to overlap between channels from 256 chips, the assumed nominal capacity of the correlator. Therefore, in this configuration, the SVs whose code phase windows exceed 200 chips are searched in the level 1 search. It should be appreciated, however, that this threshold is highly implementation dependent, and will thus vary depending on the implementation.

[0061] In step 404, if none of the SVs in the set N_(TOT) have code phase windows which exceed the predetermined threshold, the method jumps to step 408. If any of these SVs have code phase windows which exceed the threshold, step 406 is performed. In step 406, the method comprises performing a level 0 search in relation to each of the SVs in the set N_(TOT) whose code phase search window exceeds the threshold.

[0062] For each SV searched in the level 0 search, the maximum peak in the resulting correlation function is located. The code phase window center for the SV is then set to the code phase associated with the maximum peak for the SV. The code phase window size for the SV is also reduced such that the SV can be detected again using a single segment search. The assistance data from any SV that is not detected in the level 0 search is deleted such that these SVs are not searched at subsequent search levels.

[0063] From step 406, the method proceeds to step 408. In step 408, the method performs a level 1 search in relation to all the SVs in the set N_(TOT). In this step, selected measurement sufficiency criteria are also applied to measurements derived from the search results, and a flag set if the selected measurement sufficiency criteria are met. These measurement sufficiency criteria will be explained later in relation to FIG. 9.

[0064] As part of step 408, the measurements resulting from the level 1 search are classified into three categories: strong, weak, and none. In one example, this classification is performed using thresh-holding. A first threshold T₁ is used to identify peaks which are in the weak category, and a second, more stringent threshold T₂ is used to identify peaks which are in the strong category. The SVs in the weak category form a set N, and the SVs in the strong category form a set S. The set S′ is the SVs in the set N_(TOT) except for those SVs in the set S. Note that similar thresh-holding is also performed in the level 2 and 3 searches, and that the set S may be augmented if a strong peak is identified in either of these searches which was not previously identified in the level 1 search.

[0065] In one configuration, illustrated in the table of FIG. 11, the threshold T₁ applied in mode 1 to identify weak peaks is 25.0 dB-Hz. In this configuration, the threshold T₂ varies with one of three time-to-fix vs. accuracy/sensitivity options selected by the user. More specifically, the threshold T₂ for the first, second, and third options is respectively set to 29.4 dB-Hz, 32.4 dB-Hz, and ∞. The latter refers to a setting which is so large that the threshold T₂ will never be satisfied.

[0066] Step 410 follows step 408. In step 410, the flag indicating the status of the application of the selected measurement sufficiency criteria in step 408 is checked. If set, indicating satisfaction of the selected measurement sufficiency criteria, the method proceeds to step 420. In step 420, the measurements resulting from the level 1 search are reported to the PDE, which determines the position of the subscriber station based thereon. Alternatively, the subscriber station determines its own position from these measurements. If not set, indicating lack of satisfaction of the selected measurement sufficiency criteria, the method jumps to step 412.

[0067] In step 412, the method applies predetermined selection criteria to determine whether a level 2 or a level 3 search should be performed. These selection criteria will be explained later in relation to FIG. 10. If level 2 is selected, the method proceeds with step 414. If level 3 is selected, the method jumps to step 416.

[0068] In step 414, a level 2 search is performed for those SVs in the set S′. The SVs in the set S are not searched since acceptable measurements are considered to have been obtained for these SVs in the level 1 search. From step 414, the method proceeds to step 420. In step 420, the measurements from the level 2 search, and any level 1 measurements for SVs in the set S, are reported to the PDE. In response, the PDE determines the position of the subscriber station from these measurements. Alternatively, the subscriber station determines its own position from these measurements.

[0069] In step 416, the subscriber station requests sensitivity assistance from the PDE in order to account for bit phase changes that occur within the 80 ms coherent integration time employed in the level 3 search. As discussed, this step is deferred until now to avoid incurring the overhead of sensitivity assistance in the case when a level 3 search is not required or selected.

[0070] From step 416, the method proceeds to step 418. In step 418, the method performs a level 3 search for those SVs in the set S′. Again, the SVs in the set S are not searched since acceptable measurements were obtained for these SVs in the level 1 search.

[0071] Step 420 follows step 418. In step 420, the measurements from the level 3 search, and any level 1 measurements for SVs in the set S, are reported to the PDE. In response, the PDE determines the position of the subscriber station. Alternatively, the subscriber station determines its own position from these measurements.

[0072]FIG. 5 illustrates the tasks or substeps which underlie the level 0 search, block 406, in FIG. 4. In task 502, those SVs in the set N_(TOT) whose code phase window size exceeds a predetermined threshold are identified. In one example, discussed earlier, the predetermined threshold is 200 chips, but it should be appreciated that this threshold is highly implementation dependent, and that other values are possible depending on the implementation.

[0073] In task 504, one of these SVs is selected, and in task 506, the code phase window for the selected SV is enlarged if necessary so that the code phase search space for the SV comprises an integral number of slices. For purposes of this disclosure, a slice is the code phase space which can be searched through a single pass through the correlator. In one example, where the correlator comprises 8 parallel channels, each having a capacity of 32 chips, the size of a slice is 256 chips. In this example, the code phase is increased to account for a 4 chip overlap between adjacent segments, and is then further enlarged and re-centered until a total of K*8 segments are implied, where K is an integer. Again, however, it should be appreciated this example is implementation dependent, and that other examples are possible.

[0074] Task 508 follows task 506. In task 508, the search space for the SV is divided up into segments to accommodate a level 0 search. FIGS. 12A and 12B illustrate this segmentation procedure in more detail.

[0075]FIG. 12A illustrates the two-dimensional search space for an SV. In this example, the code phase axis is the horizontal axis, and the Doppler frequency axis is the vertical axis, but this assignment is arbitrary and could be reversed. The center of the code phase search window is referred to as WIN_CENT_(CP), and the size of the code phase search window is referred to as WIN_SIZE_(CP). The center of the Doppler frequency search window is referred to as WIN_CENT_(DOPP), and the size of the Doppler frequency search window is referred to as WIN_SIZE_(DOPP).

[0076] The search space is divided up into a plurality of segments 1202 a, 1202 b, 1202 c, each of which is characterized by a range of Doppler frequencies and a range of code phases. In one example, illustrated in the table of FIG. 11, the range of frequencies associated with a segment is ±250 Hz for the level 0, 1, and 2 search modes, and is ±62.5 Hz for the level 3 search mode, and the range of code phases associated with a segment is 32 chips. In this particular example, the range of frequencies characterizing a segment is divided up into 20 bins, and the range of code phases characterizing a segment is divided into 64 bins.

[0077] The range of code phases characterizing a segment is advantageously equal to the capacity of a channel of the correlator. That way, the segment can be searched through a single channel pass. In one example where the channel capacity is 32 chips, the range of code phases characterizing a segment is likewise 32 chips, but it should be appreciated that other examples are possible.

[0078] The segments advantageously overlap by a prescribed number of chips in order to avoid missing peaks that appear at segment boundaries. FIG. 12B illustrates the overlapping which is typically employed. As illustrated, the tail end of segment 1202 a overlaps the front end of segment 1202 b by Δ chips, and the tail end of segment 1202 b likewise overlaps the front end of segment 1202 c by Δ chips. Because of the overhead due to this overlap, the effective range of code phases represented by a segment is typically less than the channel capacity. In the case where the overlap is 4 chips, for example, the effective range of code phrases represented by a segment is 28 chips.

[0079] Turning back to FIG. 5, in task 508, the search phase space for the SV is divided up into segments in preparation for a level 0 search, and the segments are queued. Then, task 510 is performed. In task 510, it is determined whether any additional SVs are present in the set N_(TOT) whose search widows exceed the predetermined threshold. If so, the method loops back to step 504 for another pass through tasks 504, 506, and 508. If not, the method proceeds with step 512. Through performance of tasks 504, 506, 508, and 510, it can be seen that the search space for each SV whose code phase search window exceeds the predetermined threshold is divided up into segments which are queued in preparation for a level 0 search.

[0080] In task 512, the level 0 search is performed by adjusting the segment code phase and Doppler window parameters to account for the time elapsed between the time of the assistance data and the time the level 0 search is performed, and then processing the segments through the correlator. Again, in one example, where the correlator comprises eight parallel channels, the segments are processed through the correlator eight segments at a time, but it should be appreciated that other examples are possible. The integrations are performed by the correlator in accordance with the level 0 integration parameters. Advantageously, these parameters emphasize speed rather than sensitivity. In one example, the integration parameters for the level 0 search comprise, as set forth in the table of FIG. 11, a single coherent integration of 20 ms. Accordingly, the level 0 search will typically only detect the strongest signals.

[0081] Task 514 follows 512. In task 514, the code phase and Doppler frequency bin associated with the strongest peak associated with each SV which is searched is retained. Task 516 loops back to task 512 until all the queued segments have been searched. Advantageously, all the segments are searched within a fraction of a single GPS frequency tune time, but it should be appreciated that it is possible that multiple GPS frequency tune times may be required to search through all the segments.

[0082] After all the segments have been searched, task 518 is performed. In task 518, the strongest peak for each SV that was searched is compared to a mode 0 detection threshold. In one example, illustrated in the table of FIG. 11, the mode 0 detection threshold is 29.8 dB-Hz. If the strongest peak for an SV falls below the threshold, the acquisition data for the SV, i.e., the search window sizes and centers, is nulled out, thus ensuring that the SV will not be further searched or reported. That is desirable since these SVs represent those SVs with large search windows which could not be reduced through the level 0 search. Thus, it is important to eliminate these SVs from the class of SVs which are searched to avoid time out conditions and the like.

[0083] Task 520 follows task 518. In task 520, for each of the surviving SVs, i.e., those SVs whose strongest peak exceeds the level 0 threshold, the center of the code phase window for the SV is located at the peak, and the window size is reduced so that the peak can be found through a single pass of a segment through the correlator. Moreover, the 0^(th) order Doppler is modified to be that of the center frequency of the Doppler bin where the max peak is located.

[0084] Once task 520 has been completed, the level 0 search is completed.

[0085]FIG. 6 illustrates the tasks which underlie the level 1 search, block 408, of FIG. 4. In task 602, an SV in the set N_(TOT), whose acquisition assistance data is still intact, and which may have been modified through the level 0 search, is selected.

[0086] Task 604 is then performed. In task 604, the code phase search window for the SV is enlarged to account for code drift over time. In one example, an enlargement of 4 chips is implemented.

[0087] Task 606 follows task 604. In task 606, the search space for the SV is divided up into segments in preparation for a level 1 search, and the segments queued. In one example, as illustrated in FIG. 11, a segment for a level 1 search is characterized by a ±250 Hz range of Doppler frequencies, divided up into 20 bins, and a range of 32 chips, divided up into 64 bins.

[0088] In task 608, an inquiry is made whether there are additional SVs with intact acquisition data which need to be searched in level 1. If so, the method loops back to task 602. If not, the method proceeds with task 610. Through tasks 602 and 608, tasks 604 and 606 are performed for each of the SVs in the set N_(TOT) whose acquisition data is intact after performance of the level 0 search.

[0089] In task 610, all the queued level 1 segments are processed through the correlator. In one example, the segments are processed through the correlator eight at a time, but it should be appreciated that other examples are possible.

[0090] Task 612 is then performed. In task 612, a Max Peak algorithm is performed. In accordance with this algorithm, the strongest peak for each SV searched in the level 1 search is retained.

[0091] Task 614 follows task 612. In task 614, an inquiry is made whether there are additional level 1 segments to process. If so, the method loops back to task 610. If not, the method proceeds with task 616. Task 614 causes the method to iterate through tasks 610 and 612 until all level 1 segments have been processed.

[0092] The integration time underlying the level 1 search emphasizes speed rather than sensitivity, but does so to a lesser extent than the level 0 search. In one example, the level 1 integration time is, as illustrated in FIG. 11, 80 ms, comprising four 20 ms coherent integrations which are non-coherently combined. Advantageously, due to the level 1 integration parameters, and the reduction in search windows achieved through the level 0 search, all level 1 segments are processed in a single GPS frequency tune period.

[0093] Task 616 is then performed. In task 616, the SVs searched in the level 1 search are divided into three categories, strong, weak, and none. In one example, the classification is performed through thresh-holding. If the strongest peak found for the SV exceeds a threshold T₁, the SV is placed in the weak category. If the strongest peak found for the SV exceeds a second stronger threshold T₂, the SV is placed in the strong category. In one example, as illustrated in FIG. 11, the threshold T₁ is 25.0 dB-Hz. The threshold T₂, as indicated previously, varies with a time-to-fix vs. accuracy/sensitivity option selected by the user. In one configuration, one of three options are possible; the threshold T₂ for the first, second, and third options is respectively set to 29.4 dB-Hz, 32.4 dB-Hz, and ∞. The latter refers to a setting which is so large that the threshold T₂ will never be satisfied.

[0094] The SVs in the weak category define a set N, and the SVs in the strong category define a set S. The set S′ comprises those SVs in the set N_(TOT) excluding those SVs in the set S.

[0095] Task 618 follows task 616. In task 618, the peaks in the strong and weak categories are analyzed to ensure they are not due to cross-correlation. The analysis performed to detect peaks due to cross-correlation is conventional, and need not be detailed here.

[0096] Task 620 is then performed. In task 620, if a peak in the strong or weak category is determined to be due to cross-correlation, the peak is reclassified to the None category, i.e., treated as though it did not satisfy the T₁ threshold.

[0097] Task 622 is then performed. In task 622, it is determined whether the measurements derived from the level 1 search results satisfy one or more selected measurement sufficiency criteria. Task 624 is then performed. In task 624, if the level 1 measurements satisfy the one or more selected measurement sufficiency criteria, task 626 is performed. In task 626, a flag is set indicating that a level 2 or 3 search is not required. In task 624, if the level 1 measurements fail to satisfy the one or more selected measurement sufficiency criteria, task 628 is performed.

[0098] The specific substeps underlying tasks 622 and 624 are illustrated in FIG. 9. In substep 906, |S|, the number of SVs in the set S and therefore the strong category, is compared to |N_(TOT)|, the number of SVs in the set N_(TOT). If |S| equals |N_(TOT)|, indicating that all SVs in the set N_(TOT) are in the strong category, the method proceeds to task 626, whereby the flag is set indicating that a level 2 or 3 search is not required.

[0099] If |S| does not equal |N_(TOT)|, substep 904 is performed. In substep 904, the polygon described earlier in relation to FIG. 3 is formed from the measurements for the SVs in the set N, and the area A of this polygon is determined.

[0100] Inquiry substep 906 follows substep 904. In inquiry substep 906, the area A of the polygon is compared to a threshold area A_(T). In addition, |N|, the number of SVs in the set N, is compared to a threshold N_(EE). If the area A exceeds A_(T) or |N| exceeds N_(EE), the method jumps to task 626 in FIG. 6. Otherwise, the method proceeds with task 628 in FIG. 6.

[0101] In one example, the threshold area A_(T) and the threshold number N_(EE) vary with the time-to-fix vs. accuracy/sensitivity threshold selected by the user. In one configuration, the threshold area A_(T) for the first, second, and third options is respectively set to 4×10⁷, 6×10⁷, and ∞. The latter refers to a setting which so large that the threshold is never satisfied. In addition, the threshold number N_(EE) for the first, second and third options is respectively set to 4, 5, and ∞. Again, the latter refers to a setting which is so large that the threshold is never satisfied.

[0102] Turing back to FIG. 6, task 628 is performed if the level 1 measurements fail to satisfy the one or more selected measurement sufficiency criteria. In task 628, a list of the strong and weak peaks, and the measurements derived there-from, such as the Doppler and code phase bin containing the peak, and the peak carrier signal to noise ratio (C/N₀) for the peak, is retained. This list is used in the subsequent level 2 or 3 search to detect peaks due to cross-correlation.

[0103] Task 630 is then performed. In task 630, the acquisition data for the SVs corresponding to the weak peaks, i.e., those in the set N, is adjusted so that the peak can be located through a single search segment. Accordingly, the code phase window is re-centered on the code phase where the peak is found, and the size of the code phase window is reduced to 28 chips. Similarly, the Doppler window size is reduced to 25 Hz, and the 0^(th) order Doppler is modified to be that of the interpolated frequency where the peak is found.

[0104] Task 632 is then performed. In task 632, a flag is set indicating that a level 2 or 3 is required. The level 1 search then concludes.

[0105]FIG. 10 illustrates the substeps underlying task 412, in which a level 2 or 3 search is selected. In inquiry substep 1002, |N|, the number of SVs in the set N, is compared with a second threshold number N_(E). If |N| exceeds N_(E), a jump is made to block 414, and a level 2 search is performed. Otherwise, the method proceeds with inquiry substep 1004.

[0106] In one example, the second threshold number N_(E) varies with the time-to-fix vs. accuracy/sensitivity option selected by the user. In one configuration, the value of N_(E) for the first, second and third options is respectively set to 5, 5, and ∞. The latter indicates a setting which is so large that the threshold is never satisfied.

[0107] In inquiry substep 1004, an estimate test is made of the time required to performed a level 3 search on the SVs in the set S′. This time is compared with the maximum time t_(max) which is remaining in the current GPS position location session. If test exceeds t_(max), indicating there is insufficient time to conduct a level 3 search in the current session, the method proceeds to task 414 of FIG. 4. Otherwise, the method proceeds with task 416.

[0108] In one example, the time t_(max) is based on quality of service considerations. In a second example, involving a PDE-initiated or mobile-terminated search, such as that stemming from a 911 call by a subscriber station in an IS-801 compliant system, t_(max) is the Preferred Response Quality (PRQ) value specified by the PDE. In a third example, for a mobile-initiated search, such as that involving an Internet geography-based search initiated by the subscriber station, t_(max) is assigned by the subscriber station.

[0109]FIG. 7 illustrates the tasks underlying the level 2 search, block 414, of FIG. 4. In task 702, an SV in the set S′, i.e., those SVs previously classified as being within the weak or None categories, is selected.

[0110] Task 704 follows task 702. In task 704, the code phase window for the selected SV is increased to accommodate overlapping of segments between adjacent correlator segments. In one example, the segments are overlapped by four chips, but it should be appreciated that other examples are possible.

[0111] Task 706 follows task 704. In task 706, the search space for the selected SV is divided up into segments in preparation for a level 2 search, and the segments are queued. In one example, level 2 segments, as illustrated in FIG. 11, are characterized by a range of ±250 Doppler frequencies, divided up into 20 bins, and a range of 32 code phases, divided up into 64 bins.

[0112] Task 708 follows task 706. In task 708, an inquiry is made whether there are additional SVs in the set S′. If so, the method loops back to task 702 for another iteration. If not, the method proceeds with task 710. Through iterations through the loop represented by the tasks 702, 704, 706, and 708, the method generates and queues level 2 segments for each of the SVs in the set S′.

[0113] In task 710, level 2 segments are processed through the correlator. In one example, where the correlator comprises eight parallel channels, eight segments are processed through the correlator at a time, although it should be appreciated that other examples are possible.

[0114] Task 712 follows task 710. In task 712, a Multi/Max Peak algorithm is applied to locate, for each SV in the set S′, the earliest valid peak for the SV. This is in contrast to the Max Peak algorithm referred to in task 612, which locates the strongest peak for each SV involved in the respective search. According to one example of the Multi/Max Peak algorithm, a valid peak for the SV is the strongest peak for that SV unless there is an earlier peak within 4 chips and 15 dB of the strongest peak, in which case the valid peak is the earlier peak. This algorithm recognizes that the earliest peak is not always the strongest peak but can be a weaker peak earlier in time than the strongest peak.

[0115] In addition, the peaks which are identified in task 712 are analyzed to determine if they represent cross-correlations of the peaks listed in task 628. If a peak is so identified, the peak is discarded at run time in preference to other weaker peaks that may better represent the SV. In one example, this step occurs by comparing the C/N₀ and Doppler values of the peaks identified in task 712 with the corresponding values of the peaks identified in step 628.

[0116] Task 714 follows task 712. In task 714, an inquiry is made whether there are any remaining level 2 segments to process. If so, the method loops back to task 710 for another iteration. If not, the method proceeds to step 716. Through one or more iterations through tasks 710, 712, and 714, all level 2 segments are processed.

[0117] The integration parameters underlying the level 2 search emphasize sensitivity and accuracy rather than speed. In one example, illustrated in FIG. 11, the integration underlying the level 2 search comprises 44 20 ms coherent integrations which are non-coherently combined. In one example, the level 2 integration parameters are such that two level 2 segments can be processed by each correlator channel in one GPS frequency tune period. In the case where the correlator has eight parallel channels, that translates into a requirement that at least 16 segments be processed in a single GPS frequency tune period.

[0118] Advantageously, all the level 2 segments can be processed in a single GPS frequency tune period, but it should be appreciated that it is possible that multiple GPS frequency tune periods will be required to process the level 2 segments.

[0119] Task 716 is then performed. In task 716, a conventional cross-correlation test is applied to all the peaks which have been identified. These include the peaks in the set S, identified through either the level 1 or level 2 searches, and the peaks in the set S′. Since this test is conventional, it need not be detailed here.

[0120] Task 718 follows task 716. In task 718, for each peak identified as a cross-correlation, the RMSE saturation flag for the peak is set, or alternatively, the measurement type is set to the None category, indicating that the peak should be ignored for purposes of position determination. The level 2 search then concludes.

[0121]FIG. 8 illustrates the tasks underlying the level 3 search, block 418, of FIG. 4. In task 802, an SV in the set S′, i.e., those SVs previously classified as being within the weak or none categories, is selected.

[0122] Task 804 follows task 802. In task 804, the code phase window for the selected SV is increased to account for code drift over time. In one example, the segments are enlarged by four chips.

[0123] Task 806 follows task 804. In task 806, the search space for the selected SV is divided up into segments in preparation for a level 3 search, and the segments are queued. In one example, a level 3 segments is, as illustrated in FIG. 11, characterized by a range of ±62.5 Doppler frequencies, divided up into 20 bins, and a range of 32 code phases, divided up into 64 bins.

[0124] Task 808 follows task 806. In task 808, an inquiry is made whether there are additional SVs in the set S′. If so, the method loops back to task 802 for another iteration. If not, the method proceeds with task 810. Through iterations through the loop represented by the tasks 802, 804, 806, and 808, the method generates and queues level 3 segments for each of the SVs in the set S′.

[0125] In task 810, level 3 segments are processed through the correlator. In one example, where the correlator comprises eight parallel channels, eight segments are processed through the correlator at a time, although it should be appreciated that other examples are possible.

[0126] Task 812 follows task 810. In task 812, the Multi/Max Peak algorithm is applied to locate, for each SV in the set S′, the earliest valid peak for the SV. In addition, the peaks which are identified in task 812 are analyzed to determine if they represent cross-correlations of the peaks listed in task 628. If a peak is so identified, the peak is discarded at run time in preference to other weaker peaks that may better represent the SV. In one example, this step occurs by comparing the C/N₀ and Doppler values of the peaks identified in task 812 with the corresponding values of the peaks identified in step 628.

[0127] Task 814 follows task 812. In task 814, an inquiry is made whether there are any remaining level 3 segments to process. If so, the method loops back to task 810 for another iteration. If not, the method proceeds to step 816. Through one or more iterations through tasks 810, 812, and 814, all level 3 segments are processed.

[0128] The integration parameters underlying the level 3 search emphasize sensitivity and accuracy rather than speed, and do so to a greater degree than the level 2 search. In one example, illustrated in FIG. 11, the integration underlying the level 3 search comprises 22 80 ms coherent integrations which are non-coherently combined. In one example, the level 3 integration parameters are such that one level 3 segments can be processed by each correlator channel in one GPS frequency tune period. In the case where the correlator has eight parallel channels, that translates into a requirement that at least 8 segments be processed in a single GPS frequency tune period.

[0129] Since the coherent integration time employed in the level 3 search is 80 ms, which exceeds the 20 ms time period over which a data bit is modulated onto an SV signal, the coherent integration in the level 3 search is performed with the sensitivity assistance from the PDE provided in task 416 to account for bit phase changes that occur within the 80 ms coherent integration time.

[0130] Advantageously, all the level 3 segments are processed in a single GPS frequency tune period, but it should be appreciated that it is possible for multiple GPS frequency tune periods to be required to process the level 3 segments.

[0131] Task 816 is then performed. In task 816, a conventional cross-correlation test is applied to all the peaks which have been identified. These include the peaks in the set S, identified through either the level 1 or level 3 searches, and those in the set S′. Since this test is conventional, it need not be detailed here.

[0132] Task 818 follows task 816. In task 818, for each peak identified as a cross-correlation, the RMSE saturation flag for the peak is set, or alternatively, the measurement type is set to the None category, indicating that the peak should be ignored for purposes of position determination. The level 3 search then concludes.

[0133] An embodiment of a system for searching for position determination signals within a prescribed time period is illustrated in FIG. 13. As illustrated, the system comprises processor 1302, memory 1304, and correlator 1306.

[0134] The correlator 1306 is configured to produce correlation functions from signals provided to it by a receiver (not shown), and provide them to processor 1302, either directly or through memory 1304. The correlator 1306 may be implemented in hardware, software, or a combination of hardware and software.

[0135] The memory 1304 tangibly embodies a series of software instructions for performing any of the methods of FIGS. 2, 4-10, or any of the embodiments, implementations, or examples thereof which have been described or suggested.

[0136] The processor is configured to access and execute the software instructions tangibly embodied by memory 1304. Through execution of these instructions, the processor 1302 directs the correlator 1306 to search for position determination signals, either as part of a level 0, level 1, level 2, or level 3 search, and it derives measurements from the resulting correlation functions provided to it by correlator 1306.

[0137] If the search is a level 1 search, the processor 1302 determines whether the level 1 measurements satisfy one or more selected measurement sufficiency criteria. If so, the processor 1302 terminates the search. If not, the processor 1302 directs the correlator 1306 to perform a level 2 or 3 search for position determination signals.

[0138] An embodiment of a subscriber station in a wireless communication system is illustrated in FIG. 14. This particular subscriber station is configured to embody or incorporate the system of FIG. 13.

[0139] Radio transceiver 1406 is configured to modulate baseband information, such as voice or data, onto an RF carrier, and demodulate a modulated RF carrier to obtain baseband information.

[0140] An antenna 1410 is configured to transmit a modulated RF carrier over a wireless communications link and receive a modulated RF carrier over a wireless communications link.

[0141] Baseband processor 1408 is configured to provide baseband information from CPU 1402 to transceiver 1406 for transmission over a wireless communications link. The CPU 1402 in turn obtains the baseband information from an input device within user interface 1416. Baseband processor 1408 is also configured to provide baseband information from transceiver 1406 to CPU 1402. CPU 1402 in turn provides the baseband information to an output device within user interface 1416.

[0142] User interface 1416 comprises a plurality of devices for inputting or outputting user information such as voice or data. The devices typically included within the user interface include a keyboard, a display screen, a microphone, and a speaker.

[0143] GPS receiver 1412 is configured to receive and demodulate GPS satellite transmissions, and provide the demodulated information to correlator 1418.

[0144] Correlator 1418 is configured to derive GPS correlation functions from the information provided to it by GPS receiver 1412. For a given PN code, correlator 1418 produces a correlation function which is defined over a range of code phases which define a code phase search window, and over a range of Doppler frequency hypotheses. Each individual correlation is performed in accordance with defined coherent and non-coherent integration parameters.

[0145] Correlator 1418 may also be configured to derived pilot-related correlation functions from information relating to pilot signals provided to it by transceiver 1406. This information is used by the subscriber station to acquire wireless communications services.

[0146] Channel decoder 1420 is configured to decode channel symbols provided to it by baseband processor 1408 into underlying source bits. In one example, where the channel symbols are convolutionally encoded symbols, the channel decoder is a Viterbi decoder. In a second example, where the channel symbols are serial or parallel concatenations of convolutional codes, the channel decoder 1420 is a turbo decoder.

[0147] Memory 1404 is configured to hold software instructions embodying any of the methods of FIGS. 2, 4-10, or any of the embodiments, implementations, or examples thereof which have been described or suggested.

[0148] CPU 1402 is configured to access and execute these software instructions. Through execution of these software instructions, the CPU 1402 directs correlator 1418 to perform level 0, level 1, level 2, or level 3 searches as the case may be, analyze the GPS correlation functions provided to it by correlator 1418, derive measurements from the peaks thereof, and, in the case of level 1 measurements, determine whether the level 1 measurements satisfy selected measurement sufficiency criteria, or whether level 2 or 3 searches are required to fix the position of the entity.

[0149] CPU 1402 is also configured to determine the root mean square error (RMSE) associated with each of the measurements. These measurements and RMSE values are provided to a PDE (not shown). The PDE weights each of the measurements based on the inverse of its corresponding RMSE value, and then estimates the location of the subscriber station based on the weighted measurements. Alternatively, the subscriber station determines its own location from this information.

[0150] While various embodiments, implementations and examples have been described, it will be apparent to those of ordinary skill in the art that many more embodiments, implementations and examples are possible that are within the scope of this invention. In particular, embodiments are possible where the invention is employed to search for position determination signals comprising base station transmissions, or combinations of base station and GPS satellite transmissions. Embodiments are also possible where the invention is extended to search procedures involving any number of levels of search modes, including configuration employing levels beyond level 3. Embodiments are also possible in relation to subscriber stations which employ dual RF solutions in contrast to shared RF solutions. Consequently, the invention is not to be limited except in relation to the appended claims. 

What is claimed is:
 1. A method of searching for position determination signals using a plurality of progressively more sensitive search modes which plurality comprises, in order of increasing sensitivity, a first level mode, a second level mode, and at least one higher level mode, the method comprising: determining whether any search window parameters exceed prescribed limits; performing a first level search if any search window parameters exceed prescribed limits, and refining the search window parameters responsive thereto so they are within the prescribed limits; performing a second level search as part of a position fix attempt; deriving one or more measurements from the ensuing search results; determining whether the measurements satisfy one or more selected measurement sufficiency criteria; avoiding additional searching within the position fix attempt if the measurements satisfy the one or more selected measurement sufficiency criteria; and performing a higher level search beyond the second level if the measurements do not satisfy the one or more selected measurement sufficiency criteria.
 2. The method of claim 1 wherein the signals are GPS satellite signals.
 3. The method of claim 1 wherein the measurements comprise peak SNR and time measurements.
 4. The method of claim 1 wherein the higher level search window parameters are optimized.
 5. The method of claim 1 wherein the higher level search is selected between a third level and a fourth level search based on application of prescribed selection criteria.
 6. The method of claim 5 wherein the third level search does not employ sensitivity assistance from a wireless communication system and the fourth level search does.
 7. A method of searching for position determination signals using a plurality of progressively more sensitive search modes which plurality comprises, in order of increasing sensitivity, a first level mode, a second level mode, a third level mode, and a fourth level mode, the method comprising: determining whether any search window parameters exceed prescribed limits; performing a first level search if any search window parameters exceed prescribed limits, and refining the search window parameters responsive thereto so they are within the prescribed limits; performing a second level search as part of a position fix attempt; deriving one or more measurements from the ensuing search results; determining whether the measurements satisfy one or more selected measurement sufficiency criteria; avoiding additional searching within the position fix attempt if the measurements satisfy the one or more selected measurement sufficiency criteria; and performing a higher level search beyond the second level if the measurements do not satisfy the one or more selected measurement sufficiency criteria, wherein the higher level search is either a third level or a fourth level search based on one or more prescribed selection criteria.
 8. The method of claim 7 further comprising determining the position of an entity from measurements derived from one or more of the searches.
 9. The method of claim 8 wherein the entity is a subscriber station in a wireless communications system.
 10. The method of claim 7 wherein the series of search modes employs progressively greater integration times.
 11. The method of claim 7 wherein the fourth level search employs a coherent integration time greater than 20 ms, and the third level search does not.
 12. The method of claim 7 wherein the fourth level search employs sensitivity assistance from a wireless communication system, and the third level search does not.
 13. A method of searching for position determination signals using a plurality of progressively more sensitive search modes which plurality comprises, in order of increasing sensitivity, a first level mode, a second level mode, and a third level mode, the method comprising: performing a first level search as part of a position fix attempt; deriving one or more measurements from the ensuing search results; determining whether the measurements satisfy one or more selected measurement sufficiency criteria; avoiding additional searching within the position fix attempt if the measurements satisfy the one or more selected measurement sufficiency criteria; and performing a higher level search beyond the first level if the measurements do not satisfy the one or more selected measurement sufficiency criteria, wherein the higher level search is either a second level or a third level search based on one or more prescribed selection criteria.
 14. A memory storing a sequence of software instructions embodying the method of claim
 1. 15. A memory storing a sequence of software instructions embodying the method of claim
 7. 16. A memory storing a sequence of software instructions embodying the method of claim
 13. 17. A system comprising a processor, the memory of claim 14, and a correlator, wherein the processor is configured to access and execute the software instructions stored in the memory, and, in combination with the correlator, perform the method embodied thereby.
 18. A system comprising a processor, the memory of claim 15, and a correlator, wherein the processor is configured to access and execute the software instructions stored in the memory, and, in combination with the correlator, perform the method embodied thereby.
 19. A system comprising a processor, the memory of claim 16, and a correlator, wherein the processor is configured to access and execute the software instructions stored in the memory, and, in accordance with the correlator, perform the method embodied thereby.
 20. A method of searching for position determination signals using a plurality of progressively more sensitive search modes which plurality comprises, in order of increasing sensitivity, a first level mode, a second level mode, and at least one higher level mode, the method comprising: a step for determining whether any search window parameters exceed prescribed limits; a step for performing a first level search if any search window parameters exceed prescribed limits, and refining the search window parameters responsive thereto so they are within the prescribed limits; a step for performing a second level search as part of a position fix attempt; a step for deriving one or more measurements from the ensuing search results; a step for determining whether the measurements satisfy one or more selected measurement sufficiency criteria; a step for avoiding additional searching within the position fix attempt if the measurements satisfy the one or more selected measurement sufficiency criteria; and a step for performing a higher level search beyond the first level if the measurements do not satisfy the one or more selected measurement sufficiency criteria.
 21. A method of searching for position determination signals using a plurality of progressively more sensitive search modes which plurality comprises, in order of increasing sensitivity, a first level mode, a second level mode, and a third level mode, the method comprising: a step for performing a first level search as part of a position fix attempt; a step for deriving one or more measurements from the ensuing search results; a step for determining whether the measurements satisfy one or more selected measurement sufficiency criteria; a step for avoiding additional searching within the position fix attempt if the measurements satisfy the one or more selected measurement sufficiency criteria; and a step for performing a higher level search beyond the first level if the measurements do not satisfy the one or more selected measurement sufficiency criteria, wherein the higher level search is either a second level or a third level search based on one or more prescribed selection criteria.
 22. The method of claim 1 further comprising discarding those measurements from the higher level search which are determined to be cross-correlations of the measurements from the second level search.
 23. The method of claim 22 wherein the measurements are discarded during run time in favor of other measurements which better represent an SV.
 24. The method of claim 7 further comprising discarding those measurements from the higher level search which are determined to be cross-correlations of the measurements from the second level search.
 25. The method of claim 24 wherein the measurements are discarded at run time in favor of other measurements which better represent an SV.
 26. The method of claim 13 further comprising discarding those measurements from the higher level search which are determined to be cross-correlations of the measurements from the first level search.
 27. The method of claim 26 wherein the measurements are discarded at run time in favor of other measurements which better represent an SV.
 28. The method of claim 20 further comprising a step for discarding those measurements from the higher level search which are determined to be cross-correlations of the measurements from the second level search.
 29. The method of claim 28 wherein the measurements are discarded at run time in favor of other measurements which better represent an SV.
 30. The method of claim 21 further comprising a step for discarding those measurements from the higher level search which are determined to be cross-correlations of the measurements from the first level search.
 31. The method of claim 30 wherein the measurements are discarded at run time in favor of other measurements which better represent an SV. 